Programming language can be used to write software source code, or source file, that contains various instructions. The source code, or source file, can be compiled into executables that can run on different types of computers, or computational devices. As the programming language becomes more complex, the risk due to regression and interaction between various programming language features can become more serious. The traditional compiler testing can become inadequate to verify whether the various modifications or enhancements to the programming language compiler work appropriately. For example, existing methodologies for writing compiler tests can be insufficient to provide adequate test coverage. This is because that the test space in compiler implementations can be enormous, and a single test program may only be able to cover a small fraction of the whole test space.
This is the general area that embodiments of the invention are intended to address.